home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / complib / iir1d.z / iir1d
Encoding:
Text File  |  1998-10-30  |  15.2 KB  |  199 lines

  1.  
  2.  
  3.  
  4. ____IIIIIIIIRRRR1111DDDD((((3333FFFF))))                                                          ____IIIIIIIIRRRR1111DDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SIIR1D, DIIR1D, CIIR1D, ZIIR1D - 1D recursive convolution in the time
  10.      domain.
  11.  
  12. FFFFOOOORRRRTTTTRRRRAAAANNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  13.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee SSSSIIIIIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  14.                         iiiiiiiirrrrffffiiiillll,,,, iiiinnnncccciiiiiiiirrrr,,,, iiii0000____iiiiiiiirrrr,,,, nnnn____iiiiiiiirrrr,,,,
  15.                         oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
  16.                         aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
  17.      iiiinnnntttteeeeggggeeeerrrr            iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  18.                         iiiinnnncccciiiiiiiirrrr,,,, iiii0000____iiiiiiiirrrr,,,, nnnn____iiiiiiiirrrr
  19.                         iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
  20.      rrrreeeeaaaallll               iiiinnnn____ppppuuuutttt((((****)))),,,, iiiiiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  21.  
  22.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee DDDDIIIIIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  23.                         iiiiiiiirrrrffffiiiillll,,,, iiiinnnncccciiiiiiiirrrr,,,, iiii0000____iiiiiiiirrrr,,,, nnnn____iiiiiiiirrrr,,,,
  24.                         oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
  25.                         aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
  26.      iiiinnnntttteeeeggggeeeerrrr            iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  27.                         iiiinnnncccciiiiiiiirrrr,,,, iiii0000____iiiiiiiirrrr,,,, nnnn____iiiiiiiirrrr
  28.                         iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
  29.      ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   iiiinnnn____ppppuuuutttt((((****)))),,,, iiiiiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  30.  
  31.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee CCCCIIIIIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  32.                         iiiiiiiirrrrffffiiiillll,,,, iiiinnnncccciiiiiiiirrrr,,,, iiii0000____iiiiiiiirrrr,,,, nnnn____iiiiiiiirrrr,,,,
  33.                         oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
  34.                         aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
  35.      iiiinnnntttteeeeggggeeeerrrr            iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  36.                         iiiinnnncccciiiiiiiirrrr,,,, iiii0000____iiiiiiiirrrr,,,, nnnn____iiiiiiiirrrr
  37.                         iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
  38.      ccccoooommmmpppplllleeeexxxx            iiiinnnn____ppppuuuutttt((((****)))),,,, iiiiiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  39.  
  40.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ZZZZIIIIIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  41.                         iiiiiiiirrrrffffiiiillll,,,, iiiinnnncccciiiiiiiirrrr,,,, iiii0000____iiiiiiiirrrr,,,, nnnn____iiiiiiiirrrr,,,,
  42.                         oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
  43.                         aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
  44.      iiiinnnntttteeeeggggeeeerrrr            iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
  45.                         iiiinnnncccciiiiiiiirrrr,,,, iiii0000____iiiiiiiirrrr,,,, nnnn____iiiiiiiirrrr
  46.                         iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
  47.      ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     iiiinnnn____ppppuuuutttt((((****)))),,,, iiiiiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  48.  
  49.  
  50. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  51.      ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooonnnnvvvv....hhhh>>>>
  52.  
  53.      vvvvooooiiiidddd ssssiiiiiiiirrrr1111dddd((((    ffffllllooooaaaatttt ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
  54.                      ffffllllooooaaaatttt ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
  55.                      ffffllllooooaaaatttt ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
  56.                      ffffllllooooaaaatttt aaaallllpppphhhhaaaa,,,, ffffllllooooaaaatttt bbbbeeeettttaaaa))))
  57.  
  58.      vvvvooooiiiidddd ddddiiiiiiiirrrr1111dddd((((    ddddoooouuuubbbblllleeee ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
  59.                      ddddoooouuuubbbblllleeee ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____IIIIIIIIRRRR1111DDDD((((3333FFFF))))                                                          ____IIIIIIIIRRRR1111DDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.                      ddddoooouuuubbbblllleeee ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
  75.                      ddddoooouuuubbbblllleeee aaaallllpppphhhhaaaa,,,, ddddoooouuuubbbblllleeee bbbbeeeettttaaaa))))
  76.  
  77.      vvvvooooiiiidddd cccciiiiiiiirrrr1111dddd((((    ccccoooommmmpppplllleeeexxxx ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
  78.                      ccccoooommmmpppplllleeeexxxx ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
  79.                      ccccoooommmmpppplllleeeexxxx ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
  80.                      ccccoooommmmpppplllleeeexxxx ****aaaallllpppphhhhaaaa,,,, ccccoooommmmpppplllleeeexxxx ****bbbbeeeettttaaaa))))
  81.  
  82.      vvvvooooiiiidddd zzzziiiiiiiirrrr1111dddd((((    zzzzoooommmmpppplllleeeexxxx ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
  83.                      zzzzoooommmmpppplllleeeexxxx ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
  84.                      zzzzoooommmmpppplllleeeexxxx ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
  85.                      zzzzoooommmmpppplllleeeexxxx ****aaaallllpppphhhhaaaa,,,, zzzzoooommmmpppplllleeeexxxx ****bbbbeeeettttaaaa))))
  86.  
  87.  
  88.  
  89. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  90.      SIIR1D, DIIR1D CIIR1D and ZIIR1D compute a 1D convolution in the time
  91.      domain :
  92.  
  93.        O(j) = (1/F(0)) * { I(j) - Sum[ O(i) * F(j-i) ] }, for i=1,...,(j-1)
  94.  
  95.  
  96. UUUUSSSSAAAAGGGGEEEE
  97.      These modules compute the result of the convolution in the "output" range
  98.      padding with zeroes when needed.
  99.  
  100.      With some precautions it is possible that
  101.                the Output sequence   OVERWRITE   the Input one.
  102.      Then (if i0_out == i0_inp), it is necessary that   i0_iir =< 0 Said in
  103.      DSP jargon: "iirfil" must be AAAANNNNTTTTIIII----CCCCAAAAUUUUSSSSAAAALLLL
  104.  
  105.      In theory, an input sequence of "n_inp" samples starting at time
  106.      "i0_inp", filtered by a sequence of "n_fir" samples starting at time
  107.      "i0_fir", will result in a new signal of infinite length starting at time
  108.      (i0_inp + i0_fir).  Here we just compute here the values that fall in
  109.      that range and zero the rest.
  110.  
  111.      For example when filtering a sequence of N samples, with a filter of m
  112.      samples. If one wants only to compute the first N resulting samples, the
  113.      following call can be used:
  114.          call diir1d( f, 0, 1, N,  g, 0, 1, m,  h, 0, 1, N)
  115.  
  116.  
  117.  
  118.  
  119. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  120.      iiiinnnn____ppppuuuutttt  Pointer to IIRST sample of sequence "in_put"
  121.  
  122.  
  123.      iiiinnnncccciiiinnnnpppp  Increment between two successive values of "in_put"
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____IIIIIIIIRRRR1111DDDD((((3333FFFF))))                                                          ____IIIIIIIIRRRR1111DDDD((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      iiii0000____iiiinnnnpppp  Index of the iirst element of "in_put"
  141.  
  142.  
  143.      nnnn____iiiinnnnpppp   Number of samples of "in_put"
  144.  
  145.  
  146.      iiiiiiiirrrrffffiiiillll  Pointer to IIRST sample of sequence "iirfil"
  147.  
  148.  
  149.      iiiinnnncccciiiiiiiirrrr  Increment between two successive values of "iirfil"
  150.  
  151.  
  152.      iiii0000____iiiiiiiirrrr  Index of the iirst element of "iirfil"
  153.  
  154.  
  155.      iiii0000____iiiiiiiirrrr  Number of samples of "iirfil"
  156.  
  157.  
  158.      oooouuuuttttppppuuuutttt  Pointer to IIRST sample of sequence "output"
  159.  
  160.  
  161.      iiiinnnnccccoooouuuutttt  Increment between two successive values of "output"
  162.  
  163.  
  164.      iiii0000____oooouuuutttt  Index of the iirst element of "output"
  165.  
  166.  
  167.      nnnn____oooouuuutttt   Number of samples of "output"
  168.  
  169.  
  170.      aaaallllpppphhhhaaaa   Scaling factor for the convolution
  171.  
  172.  
  173.      bbbbeeeettttaaaa    Scaling factor for the Output on Entry
  174.  
  175.  
  176. IIIIMMMMPPPPOOOORRRRTTTTAAAANNNNTTTT NNNNOOOOTTTTEEEE::::
  177.            The array pointers must all point to the iirst element of the
  178.            array "i0_inp", "i0_iir" and "i0_out". If "in_put" for example
  179.            is defined as
  180.                 dimension in_put(-25:45)
  181.            Then "diir1d" must be called with the following parameters
  182.                 call diir1d( in_put(-25),1,-25,45, ... )
  183.  
  184.  
  185. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  186.           Jean-Pierre Panziera, 1/12/93.
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.